#ifndef COMMANDS_H
#define COMMANDS_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "Testing.h"
#include "SyscallManager.h"
#include "MemoryManager.h"
#include "ProcessManager.h"
#include "QueueManager.h"

/**
 * Interprets the specified and executes it.
 * @author Daniel Fairweather
 */
void runCommand();

/* Intializes the system */
void system_init();

/**
 * Interprets and executes a system call.
 * @author Daniel Fairweather
 */
void syscall();

/**
 * Turns redirection mode on or off.
 * @author Daniel Fairweather
 */
void toggleRedirection();
void logicalDump();
void listLRU();
void printProcess(process_control_block* pcb);
void printQueues();
void printQueue(int qid);

#endif